Pin vcpkg MEOS to canonical ecosystem SHA and rename meosType → MeosType#197
Open
estebanzimanyi wants to merge 8 commits into
Open
Pin vcpkg MEOS to canonical ecosystem SHA and rename meosType → MeosType#197estebanzimanyi wants to merge 8 commits into
estebanzimanyi wants to merge 8 commits into
Conversation
…alized API Pin MEOS at MobilityDB/MobilityDB 2c4243a265 and adapt the binding to that surface: the spatial-relationship functions drop their restr/at_value arguments and become 2-arg, the temporal multiplication MEOS calls move from mult_* to mul_*, temptype_continuous becomes temptype_supports_linear, and the rtree module follows the MeosType/MeosArray bbox API. MeosType is used directly in headers where the forward-compat alias is not visible.
LoadInternal auto-loads ICU for the named Europe/Brussels zone; when ICU has no on-disk copy and no network egress (CI test docker, edge/musl, offline) the auto-load is caught so the extension still loads with the session timezone at its default. The release/debug/reldebug test targets stage the locally-built icu.duckdb_extension into the version/platform path DuckDB autoloads from.
DuckDB runs scalar and cast bodies on TaskScheduler worker threads; MEOS keeps the session timezone, errno, PROJ context and RNGs in thread-local storage and needs meos_initialize() on each thread before first use. A thread-local guard in the scalar exec wrapper and a cast trampoline run the per-thread init (and re-install the error handler) at every entry point, so timestamp formatting on a worker no longer dereferences a NULL session_timezone.
…pected The tfloat ln/exp/log10 lifts insert one chord-error turning point on a linear segment; the MEOS pin computes it in double so the inserted instant is identical on every platform, and the 026b expected carries the three-instant result.
On macOS LP64 int64 (long) and int64_t (long long) are the same width but distinct types, so clang rejects bigint_to_set as a Set *(*)(int64_t) non-type template argument. A forwarder that casts int64_t to int64 fixes the macOS build; the cast is a no-op on Linux.
Adds the SIZEOF_LONG_LONG emission to the rendered pg_config.h so the DuckDB-Wasm (wasm32-emscripten / ILP32) build of MEOS no longer fails the pg_bitutils integer-width check.
The pinned MEOS returns TimeSplit / DatumSplit / IntSplit / FloatSplit / SpaceSplit / SpaceTimeSplit / MvtGeom structs from the split and as-mvtgeom functions, and set_vals / set_spans / spanset_spans take an int* count out-parameter. Adapt the temporal, tgeompoint, set, span and spanset table/scalar functions to the struct fields and the extra out-parameter.
Pin MEOS to the canonical ecosystem surface and adapt the binding to it: treat a shared span boundary as adjacency (the share-a-boundary span adjacency goldens), and derive the symmetric box/span x temporal topological predicates (overlaps/same/adjacent) from MEOS's single canonical argument direction by commutativity, since the reverse-argument duplicates are deduplicated out of the surface.
c50326a to
e5d0464
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The vcpkg portfile fetches estebanzimanyi/MobilityDB at 278863520b (tag ecosystem-pin-2026-06-06g, SHA512 2e617cac4bfed919eee8bd73e35f9b3da8ffd7a51f68104a9497c0d3339dbb1af4a2ec6feab3e8fffb880481badf86c352ad1efb39cab533de19d2c1192a8e5b). The MEOS 1.4 API exposes MeosType (CamelCase); every call-site in MobilityDuck uses MeosType directly and the forward-compat alias in tydef.hpp is removed.